iT邦幫忙

2022 iThome 鐵人賽

DAY 28
1
Modern Web

MySQL,我的超人系列 第 28

Day28-MySQL-收下我最後的優化吧!-SQL篇

  • 分享至 

  • xImage
  •  

前言

Day26-MySQL-收下我最後的優化吧!-分析篇中,優化資料庫效益比最高的方式還是針對資料、SQL語句本身,以下為針對大量數據列舉幾種SQL優化方案。

索引

Day24-MySQL-索引中簡單介紹幾種常見的索引,Day27-MySQL-收下我最後的優化吧!-Tree 樹中簡介了索引的原理與資料結構。

使用索引,避免全表掃描的SQL

Null

    SELECT * FROM table_name WHERE name = null;   

開頭模糊查詢

    SELECT * FROM table_name WHERE name LIKE '%王%'

盡量移到字尾進行模糊搜尋

IN & NOT IN

    SELECT * FROM table_name WHERE id IN (2,10)`

使用Between、Exists代替

SELECT優化

SELECT *

取出全部欄位會導致索引無法覆蓋,消耗大量硬體資源

無法快取查詢

now()這類的函數會導致無法快取查詢

多表連結

使用表別名 AS,加快解析

JOIN 小表驅動大表

SELECT * FROM small_table s INNER JOIN big_table b ON s.id=b.id

INSERT優化

Insert into table_name values(A,B),(C,D),(E,F);

這樣的語句比重複SQL三遍來的好

COMMIT

釋放交易時上的鎖


上一篇
Day27-MySQL-收下我最後的優化吧!-Tree 樹
下一篇
Day29-MySQL-起源
系列文
MySQL,我的超人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言